1. Field of the Invention
The invention relates to systems and methods for distributing load across multiple resources. Specifically, the invention relates to systems and methods for optimizing load distribution and balance across logical and physical resources in a storage system.
2. Description of the Related Art
Virtual tape libraries (“VTLs”) provide significant advantages in convenience and performance relative to the tape libraries conventionally used for archival data storage. VTLs typically back up and restore data faster and more reliably than their conventional tape library counterparts due to their unique ability to consolidate and randomly access data. Further, VTLs may operate in conjunction with conventional tape libraries, thereby providing redundancy and increased reliability.
The hardware underlying a VTL may be hierarchical, such that a load may be distributed across multiple disk storage subsystems, across storage enclosures within a disk subsystem, and across disk arrays within a storage enclosure. An imbalance in load distribution may create various bottlenecks within the hierarchy that slow overall VTL performance.
Existing methods to allocate load within a hierarchical storage structure often result in load imbalances at various levels within the hierarchy. For example, the “spill-and-fill” method identifies a single resource (ie. disk storage subsystem) from which to allocate logical units of data positioned below the resource in the hierarchy. When those logical units of data are exhausted, allocation proceeds to logical units of data positioned below another identified resource. Accordingly, the “spill-and-fill” method, while simple to implement, tends to leave many resources idle while a few resources bear the entire load.
The “round-robin” approach provides a more effective alternative to the “spill-and-fill” method in balancing load across system resources in a hierarchy. Particularly, the “round-robin” method systematically allocates load across each level of the hierarchy, proceeding from a top level to a bottom level. In some cases, however, this method may also cause load imbalance. For example, load allocation may be driven by two users whose requests are interleaved. As a result, one user's logical units may be primarily positioned beneath one half of the system resources, while the other user's logical units may be primarily positioned beneath the other half. Further, the “round-robin” approach fails to take into account other variables, such as current load per resource or historical load per resource, which may affect overall load balance.
From the foregoing discussion, it should be apparent that a need exists for a system and method to optimize load distribution across logical and physical resources in a storage system. Beneficially, such a system and method would organize logical and physical resources into a hierarchical tree structure that may be used to dynamically identify a most available resource based on a plurality of factors. Such a system and method are disclosed and claimed herein.